#include<iostream>
#include"../Card.h"
#include <assert.h>
using namespace std;

#define VERBOSE 1
int main(){
  Card someCard1(diamonds, ace, 1);
  Card someCard2(hearts, ace, 2);
  #if VERBOSE
    /*test getRank()*/
    cout<< "Getting test card's rank: ";
    cout<< someCard1.getRank() <<endl;
    cout<< "expected: 1"<<endl;
    /*test getSuit()*/
    cout<< "Getting test card's suit: ";
    cout<< someCard1.getSuit() <<endl; 
    cout<< "expected: 0 for diamonds"<<endl;
    /*test getID()*/
    cout<< "Getting test card's ID: ";
    cout<< someCard1.getID() <<endl;
    cout<< "expected 1"<<endl;
    /*test compareCard() cases*/
    cout<< "Comparing rank 1 to rank ace: "<<endl;
    cout<< someCard1.compareCard(someCard2)<<endl;
    cout<< "expected 1"<<endl;
  #endif
  assert(someCard1.getRank() == 1);
  assert(someCard1.getSuit() == 0);
  assert(someCard1.getID() == 1);
  assert(someCard1.compareCard(someCard2) == 0);

  Card someCard3(hearts, _5, 3);
  Card someCard4(spades, _5, 4);
  Card someCard5(clubs, _10, 5);
  Card someCard6(clubs, queen, 6);

  #if VERBOSE
  cout<< "Comparing rank 5 to rank 5: "<<endl;
  cout<< someCard3.compareCard(someCard4)<<endl;
  cout<< "expected 0"<<endl;
  cout<< "Comparing rank 10 to rank Queen: "<<endl;
  cout<< someCard5.compareCard(someCard6)<<endl;
  cout<< "expected -1"<<endl;
  cout<< "Did it pass all tests?"<<endl;
  cout<<"Card Test done" <<endl;
  #endif 
  assert(someCard3.compareCard(someCard4) == 0);
  assert(someCard5.compareCard(someCard6) == -1);

   
  cout<<"We passed all the tests!!!!"<<endl;
  return 0;
}
